<!DOCTYPE html>
<html id="html">
<head>
	<title>jQuery - Validation Test Suite</title>
	<link rel="stylesheet" href="qunit/qunit.css" />
	<script src="jquery.js"></script>
	<script src="../lib/jquery.form.js"></script>
	<script src="qunit/qunit.js"></script>
	<script src="../lib/jquery.mockjax.js"></script>
	<script src="../jquery.validate.js"></script>
	<script src="../additional-methods.js"></script>
	<script src="test.js"></script>
	<script src="rules.js"></script>
	<script src="messages.js"></script>
	<script src="methods.js"></script>
</head>
<body id="body">
	<h1 id="qunit-header">
		<a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a> Test Suite
		<a href="?jquery=1.6.4">jQuery 1.6.4</a>
		<a href="?jquery=1.7.2">jQuery 1.7.2</a>
		<a href="?jquery=1.8.3">jQuery 1.8.3</a>
		<a href="?jquery=1.9.0">jQuery 1.9.0</a>
		<a href="?jquery=git">jQuery Latest (git)</a>
		</h1>
	<div>
	</div>
	<h2 id="qunit-banner"></h2>
	<div id="qunit-testrunner-toolbar"></div>
	<h2 id="qunit-userAgent"></h2>
	<ol id="qunit-tests"></ol>

	<!-- Test HTML -->
	<div id="other" style="display:none;">
		<input type="password" name="pw1" id="pw1" value="engfeh" />
		<input type="password" name="pw2" id="pw2" value="" />
	</div>
	<div id="qunit-fixture">
		<p id="firstp">See <a id="simon1" href="http://simon.incutio.com/archive/2003/03/25/#getElementsBySelector" rel="bookmark">this blog entry</a> for more information.</p>
		<p id="ap">
			Here are some links in a normal paragraph: <a id="google" href="http://www.google.com/" title="Google!">Google</a>,
			<a id="groups" href="http://groups.google.com/">Google Groups</a>.
			This link has <code><a href="#" id="anchor1">class="blog"</a></code>:
			<a href="http://diveintomark.org/" class="blog" hreflang="en" id="mark">diveintomark</a>

		</p>
		<div id="foo">
			<p id="sndp">Everything inside the red border is inside a div with <code>id="foo"</code>.</p>
			<p lang="en" id="en">This is a normal link: <a id="yahoo" href="http://www.yahoo.com/" class="blogTest">Yahoo</a></p>
			<p id="sap">This link has <code><a href="#2" id="anchor2">class="blog"</a></code>: <a href="http://simon.incutio.com/" class="blog link" id="simon">Simon Willison's Weblog</a></p>

		</div>
		<p id="first">Try them out:</p>
		<ul id="firstUL"></ul>
		<ol id="empty"></ol>

		<form id="testForm1">
			<input type="text" data-rule-required="true" data-rule-minlength="2" title="buga" name="firstname" id="firstname" />
			<label id="errorFirstname" for="firstname" class="error">error for firstname</label>
			<input type="text" data-rule-required="true" title="buga" name="lastname" id="lastname" />
			<input type="text" data-rule-required="true" title="something" name="something" id="something" value="something" />
		</form>

		<form id="testForm1clean">
			<input title="buga" name="firstname" id="firstnamec" />
			<label id="errorFirstname" for="firstname" class="error">error for firstname</label>
			<input title="buga" name="lastname" id="lastnamec" />
			<input name="username" id="usernamec" />
		</form>

		<form id="userForm">
			<input type="text" data-rule-required="true" name="username" id="username" />
			<input type="submit" name="submitButton" value="submitButtonValue" />
		</form>

		<form id="signupForm" action="form.php">
			<input id="user" name="user" title="Please enter your username (at least 3 characters)" data-rule-required="true" data-rule-minlength="3" />
			<input type="password" name="password" id="password" data-rule-required="true" data-rule-minlength="5" />
		</form>

		<form id="testForm2">
			<input data-rule-required="true" type="radio" name="agree" id="agb" />
			<label for="agree" id="agreeLabel" class="xerror">error for agb</label>
		</form>

		<form id="testForm3">
			<select data-rule-required="true" name="meal" id="meal" >
				<option value="">Please select...</option>
				<option value="1">Food</option>
				<option value="2">Milk</option>
			</select>
		</form>
		<div class="error" id="errorContainer">
			<ul>
				<li class="error" id="errorWrapper">
					<label for="meal" id="mealLabel" class="error">error for meal</label>
				</li>
			</ul>
		</div>

		<form id="testForm4">
			<input data-rule-foo="true" name="f1" id="f1" />
			<input data-rule-bar="true" name="f2" id="f2" />
		</form>

		<form id="testForm5">
			<input data-rule-equalto="#x2" value="x" name="x1" id="x1" />
			<input data-rule-equalto="#x1" value="y" name="x2" id="x2" />
		</form>

		<form id="testForm6">
			<input data-rule-required="true" data-rule-minlength="2" type="checkbox" name="check" id="form6check1" />
			<input type="checkbox" name="check" id="form6check2" />
		</form>

		<form id="testForm7">
			<select data-rule-required="true" data-rule-minlength="2" name="selectf7" id="selectf7" multiple="multiple">
				<option id="optionxa" value="0">0</option>
				<option id="optionxb" value="1">1</option>
				<option id="optionxc" value="2">2</option>
				<option id="optionxd" value="3">3</option>
			</select>
		</form>

		<form id="dateRangeForm">
			<input id="fromDate" name="fromDate" class="requiredDateRange" value="x" />
			<input id="toDate" name="toDate" class="requiredDateRange" value="y" />
			<span class="errorContainer"></span>
		</form>

		<form id="testForm8">
			<input id="form8input" data-rule-required="true" data-rule-number="true" data-rule-rangelength="2,8" name="abc" />
			<input type="radio" name="radio1"/>
		</form>

		<form id="testForm9">
			<input id="testEmail9" data-rule-required="true" data-rule-email="true" data-msg-required="required" data-msg-email="email" />
		</form>

		<form id="testForm10">
			<input type="radio" name="testForm10Radio" value="1" id="testForm10Radio1" />
			<input type="radio" name="testForm10Radio" value="2" id="testForm10Radio2" />
		</form>

		<form id="testForm11">
			<!-- HTML5 -->
			<input required type="text" name="testForm11Text" id="testForm11text1" />
		</form>

		<form id="testForm12">
			<!-- empty "type" attribute -->
			<input name="testForm12text" id="testForm12text" data-rule-required="true" />
		</form>

		<form id="dataMessages">
			<input name="dataMessagesName" id="dataMessagesName" class="required" data-msg-required="You must enter a value here" />
		</form>

		<div id="simplecontainer">
			<h3></h3>
		</div>

		<div id="container" style="min-height:1px"></div>

		<ol id="labelcontainer"></ol>

		<form id="elementsOrder">
			<select class="required" name="order1" id="order1"><option value="">none</option></select>
			<input class="required" name="order2" id="order2"/>
			<input class="required" name="order3" type="checkbox" id="order3"/>
			<input class="required" name="order4" id="order4"/>
			<input class="required" name="order5" type="radio" id="order5"/>
			<input class="required" name="order6" id="order6"/>
			<ul id="orderContainer">
			</ul>
		</form>

		<form id="form" action="formaction">
			<input type="text" name="action" value="Test" id="text1"/>
			<input type="text" name="text2" value="   " id="text1b"/>
			<input type="text" name="text2" value="T " id="text1c"/>
			<input type="text" name="text2" value="T" id="text2"/>
			<input type="text" name="text2" value="TestTestTest" id="text3"/>

			<input type="text" name="action" value="0" id="value1"/>
			<input type="text" name="text2" value="10" id="value2"/>
			<input type="text" name="text2" value="1000" id="value3"/>

			<input type="radio" name="radio1" id="radio1"/>
			<input type="radio" name="radio1" id="radio1a"/>
			<input type="radio" name="radio2" id="radio2" checked="checked"/>
			<input type="radio" name="radio" id="radio3"/>
			<input type="radio" name="radio" id="radio4" checked="checked"/>

			<input type="checkbox" name="check" id="check1" checked="checked"/>
			<input type="checkbox" name="check" id="check1b" />

			<input type="checkbox" name="check2" id="check2"/>

			<input type="checkbox" name="check3" id="check3" checked="checked"/>
			<input type="checkbox" name="check3" checked="checked"/>
			<input type="checkbox" name="check3" checked="checked"/>
			<input type="checkbox" name="check3" checked="checked"/>
			<input type="checkbox" name="check3" checked="checked"/>

			<input type="hidden" name="hidden" id="hidden1"/>
			<input type="text" style="display:none;" name="foo[bar]" id="hidden2"/>

			<input type="text" readonly="readonly" id="name" name="name" value="name" />

			<button name="button">Button</button>

			<textarea id="area1" name="area1">foobar</textarea>


			<textarea id="area2" name="area2"></textarea>

			<select name="select1" id="select1">
				<option id="option1a" value="">Nothing</option>
				<option id="option1b" value="1">1</option>
				<option id="option1c" value="2">2</option>
				<option id="option1d" value="3">3</option>
			</select>
			<select name="select2" id="select2">
				<option id="option2a" value="">Nothing</option>
				<option id="option2b" value="1">1</option>
				<option id="option2c" value="2">2</option>
				<option id="option2d" selected="selected" value="3">3</option>
			</select>
			<select name="select3" id="select3" multiple="multiple">
				<option id="option3a" value="">Nothing</option>
				<option id="option3b" selected="selected" value="1">1</option>
				<option id="option3c" selected="selected" value="2">2</option>
				<option id="option3d" value="3">3</option>
			</select>
			<select name="select4" id="select4" multiple="multiple">
				<option id="option4a" selected="selected" value="1">1</option>
				<option id="option4b" selected="selected" value="2">2</option>
				<option id="option4c" selected="selected" value="3">3</option>
				<option id="option4d" selected="selected" value="4">4</option>
				<option id="option4e" selected="selected" value="5">5</option>
			</select>
			<select name="select5" id="select5" multiple="multiple">
				<option id="option5a" value="0">0</option>
				<option id="option5b" value="1">1</option>
				<option id="option5c" value="2">2</option>
				<option id="option5d" value="3">3</option>
			</select>
		</form>

		<form id="v2">
			<input id="v2-i1" name="v2-i1" class="required" />
			<input id="v2-i2" name="v2-i2" class="required email" />
			<input id="v2-i3" name="v2-i3" class="url" />
			<input id="v2-i4" name="v2-i4" class="required" minlength="2" />
			<input id="v2-i5" name="v2-i5" class="required" minlength="2" maxlength="5" customMethod1="123" />
			<input id="v2-i6" name="v2-i6" class="required customMethod2" data-rule-maxlength="5" data-rule-minlength="2" />
			<input id="v2-i7" name="v2-i7" />
		</form>

		<form id="checkables">
			<input type="checkbox" id="checkable1" name="checkablesgroup" class="required" />
			<input type="checkbox" id="checkable2" name="checkablesgroup" />
			<input type="checkbox" id="checkable3" name="checkablesgroup" />
		</form>

		<form id="subformRequired">
			<div class="billingAddressControl">
            	<input type="checkbox" id="bill_to_co" name="bill_to_co" class="toggleCheck" checked="checked" style="width: auto;" tabindex="1" />
            	<label for="bill_to_co" style="cursor:pointer">Same as Company Address</label>
          	</div>
			<div id="subform">
				<input  maxlength="40" class="billingRequired" name="bill_first_name" size="20" type="text" tabindex="2" value="" />
			</div>
			<input id="co_name" class="required" maxlength="40" name="co_name" size="20" type="text" tabindex="1" value="" />
		</form>

		<form id="withTitle">
			<input class="required" name="hastitle" type="text" title="fromtitle" />
		</form>

		<form id="ccform" method="get" action="">
			<input id="cardnumber" name="cardnumber" />
		</form>

		<form id="productInfo">
			<input class="productInfo" name="partnumber">
			<input class="productInfo" name="description">
			<input class="productInfo" name="color">
			<input class="productInfo" type="checkbox" name="discount" />
		</form>

		<form id="updateLabel">
			<input class="required" name="updateLabelInput" id="updateLabelInput" data-msg-required="You must enter a value here" />
			<label id="targetLabel" class="error" for="updateLabelInput">Some server-side error</label>
		</form>

		<form id="rangesMinDateInvalid">
			<input type="date" id="minDateInvalid" name="minDateInvalid" min="2012-12-21" value="2012-11-21"/>
		</form>
		<form id="ranges">
			<input type="date" id="maxDateInvalid" ngame="maxDateInvalid" max="2012-12-21" value="2013-01-21"/>
			<input type="date" id="rangeDateInvalidGreater" name="rangeDateInvalidGreater" min="2012-11-21" max="2013-01-21" value="2013-02-21"/>
			<input type="date" id="rangeDateInvalidLess" name="rangeDateInvalidLess" min="2012-11-21" max="2013-01-21" value="2012-10-21"/>

			<input type="date" id="maxDateValid" name="maxDateValid" max="2013-01-21" value="2012-12-21"/>
			<input type="date" id="rangeDateValid" name="rangeDateValid" min="2012-11-21" max="2013-01-21" value="2012-12-21"/>

			<!-- input type text is not supposed to have min/max according to html5,
			     but for backward compatibility with 1.10.0 we treat it as number.
			     you can also use type="number", in which case the browser may also
			     do validation, and mobile browsers may offer a numeric keypad to edit 
			     the value.
			     Type absent is treated like type="text".
			  -->
			<input type="text" id="rangeTextInvalidGreater" name="rangeTextInvalidGreater" min="50" max="200" value="1000"/>
			<input type="text" id="rangeTextInvalidLess" name="rangeTextInvalidLess" min="200" max="1000" value="50"/>
			<input id="rangeAbsentInvalidGreater" name="rangeAbsentInvalidGreater" min="50" max="200" value="1000"/>
			<input id="rangeAbsentInvalidLess" name="rangeAbsentInvalidLess" min="200" max="1000" value="50"/>

			<input type="text" id="rangeTextValid" name="rangeTextValid" min="50" max="1000" value="200"/>
			<input id="rangeAbsentValid" name="rangeTextValid" min="50" max="1000" value="200"/>

			<!-- ranges are like numbers in html5, except that browser is not required 
			     to demand an exact value.  User interface could be a slider.
			  -->
			<input type="range" id="rangeRangeValid" name="rangeRangeValid" min="50" max="1000" value="200"/>

			<input type="number" id="rangeNumberValid" name="rangeNumberValid" min="50" max="1000" value="200"/>
			<input type="number" id="rangeNumberInvalidGreater" name="rangeNumberInvalidGreater" min="50" max="200" value="1000"/>
			<input type="number" id="rangeNumberInvalidLess" name="rangeNumberInvalidLess" min="50" max="200" value="6"/>

		</form>
		<form id="rangeMinDateValid">
			<input type="date" id="minDateValid" name="minDateValid" min="2012-11-21" value="2012-12-21"/>
		</form>
		
		<form id="bypassValidation">
				<input type="text" required/>
				<input id="normalSubmit" type="submit" value="submit"/>
				<input id="bypassSubmitWithCancel" type="submit" class="cancel" value="bypass1"/>
				<input id="bypassSubmitWithNoValidate1" type="submit" formnovalidate value="bypass1"/>
				<input id="bypassSubmitWithNoValidate2" type="submit" formnovalidate="formnovalidate" value="bypass2"/>
		</form>
	</div>

</body>
</html>
